package com.cloudkinto.service.headercontainer;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.entity.HeaderContainerDo;
import com.cloudkinto.service.firstvesselorder.vo.FirstVesselOrderPageRes;
import com.cloudkinto.service.headercontainer.vo.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * service接口
 * </p>
 *
 * @author zhangyy
 * @since 2020-10-26
 */
public interface HeaderContainerService extends IService<HeaderContainerDo> {

    SingleResult addInit();

    SingleResult updateStatusInit();

    SingleResult updateStatus(HeaderContainerUpdateStatusReq req, Long currentUserId);

    Object add(HeaderContainerAddReq req, Long userId);

    void jointContainer(HeaderContainerDetailAddReq req, boolean flag);

    void autoJointContainer(List<Long> ids);

    SingleResult updateInit(Long id);

    HeaderContainerUpdateReq update(HeaderContainerUpdateReq updateVo, Long userId);

    int delete(Long id, Long userId);

    int deleteVesselOrder(HeaderContainerDeleteVesselOrderReq req, Long userId);

    List<FirstVesselOrderPageRes> detail(Long id);

    SingleResult pageInit();

    List<HeaderContainerPageRes> getList(Map<String, String> map);

    PageResult getListPage(Map<String, String> map);

    void exportPackageInvoice(Long id, HttpServletResponse responseBody);

    void updatePoNumberHandler(Long id);

    PageResult getWaitOrderList(Map<String, String> map);

    SingleResult updateLicenceDate(HeaderContainerUpdateLicenceDateReq req);

    SingleResult updateInStorageDate(HeaderContainerUpdateInStorageReq req);

    SingleResult updateClearFileId(HeaderContainerUpdateClearFileReq req);

    SingleResult setPriceInit(int type, long orderId);

    SingleResult setPriceItem(HeaderFeeSetRequest request);

    void exportHeaderFeePage(Long orderId, HttpServletResponse response);


//    PageResult firstVesselOrderListPage(Map<String, String> map);
}
